package yangsw87.basic;

public class J21_String {

	public static void main(String[] args) {
		// 문자열 클래스 다루기
		// 주민번호 이용해서 성별 확인
		// 9 : 남자
		// 8 : 여자
		String jumin ="123456-9876543";
		
		System.out.println("문자열 길이 : " + jumin.length());
		System.out.println("성별문자 : " + jumin.charAt(7)); // index는 0부터 시작하므로
		System.out.println("주민번호 식별문자 : " + jumin.substring(7));
		System.out.println("성별문자 : " + jumin.substring(7,8)); // 시작위치는 7로하고 
															   // 끝나는 위치는 8-1로 한다.
		String s[] = jumin.split("-");
			for(int i=0; i<s.length; i++)
				System.out.println("분리된"+i+"번 문자열 : "+s[i]);
			
		String msg = "hello";
		
		if(msg=="hello")
			System.out.println("일치함!");
		else
			System.out.println("일치안함!");
		
		String msg2 = "hello";
		
		if(msg==msg2)
			System.out.println("일치함!");
		else
			System.out.println("일치안함!");
		
		String msg3 = new String("Java");
		String msg4 = new String("java");
		
		if(msg3==msg4)
			System.out.println("일치함!");
		else
			System.out.println("일치안함!");
		// msg3과 msg4가 메모리에 생성된 위치(주소)가 다름
		// String 객체 비교시 == 연산자는
		// 참조된 주소의 동질성을 확인함
		
		// msg(리터럴)와 msg3(new) 비교?
		String msg5 = new String("hello");
		// msg과 msg5는 메모리에 생성된 위치(주소)가 다름
		// == 연산자로 비교해보면 '불일치'로 출력
		if(msg==msg5)
			System.out.println("일치함!");
		else
			System.out.println("일치안함!");
		
		/*--------------------------------------*/
		if(msg3.equals(msg4))
			System.out.println("일치!");
		else
			System.out.println("불일치!");
		
		if(msg.equals(msg5))
			System.out.println("일치!");
		else
			System.out.println("불일치!");
		
		/*--------------------------------------*/
		// 문자열 연결시 + 연산자를 사용하면
		// 필요없는 객체 생성이 동반되어
		// 메모리 사용율과 CPU 자원이 소모가 커짐
		// 따라서, StringBuilder 나 StringBuffer를
		// 사용할 것을 추천!
		String sql = "update BookDB " + " set title=?, publisher=?, author=?, " +
					" regdate = sysdate " + " where id = ? ";
		
		StringBuilder sq12 = new StringBuilder();
		sq12.append( " update BookDB ").append( " set title=?, publisher=?, author=?, ")
		.append( " regdate = sysdate ").append( " where id = ? ");
		
		System.out.println(sq12); // 자동 형변환
		String tmp = sq12.toString(); // 수동 형변환
		System.out.println(tmp);
		
	}

}
